/**
 * 文件附件接口定义
 */
export interface IFileAttachment {
	ID?: string | null;
	FileName?: string | null;
	Length?: number | null;
	UploadTime?: Date | null;
	SaveMode?: string | null;
	ExtraInfo?: string | null;
	FileExt?: string | null;
	ThumbnailUrl?: string | null;
	Url?: string | null;
	IsTemporary?: boolean | null;
}

export interface IFrameworkUser {
	ID?: string | null;
	ITCode: string | null;
	Name: string | null;
	Password?: string | null;
	IsValid: boolean | null;
	PhotoId?: string | null;
	Email?: string | null;
	Gender?: 'Male' | 'Female' | null;
	CellPhone?: string | null;
	HomePhone?: string | null;
	Address?: string | null;
	ZipCode?: string | null;
	CreateTime?: Date | null;
	UpdateTime?: Date | null;
	CreateBy?: string | null;
	UpdateBy?: string | null;
}

export interface IFrameworkGroup {
	ID?: string | null;
	GroupCode?: string | null;
	GroupName?: string | null;
	ParentId?: string | null;
	Manager?: string | null;
	GroupRemark?: string | null;
	CreateTime?: Date | null;
	UpdateTime?: Date | null;
	CreateBy?: string | null;
	UpdateBy?: string | null;
}

export interface ISysJobPosition {
	ID?: string | null;
	Code?: string | null;
	Name?: string | null;
	Description?: string | null;
	GroupId?: string | null;
	Group?: IFrameworkGroup;
	CreateTime?: Date | null;
	UpdateTime?: Date | null;
	CreateBy?: string | null;
	UpdateBy?: string | null;
}

export interface IFrameworkRole {
	ID?: string | null;
	RoleCode?: string | null;
	RoleName?: string | null;
	RoleRemark?: string | null;
	CreateTime?: Date | null;
	UpdateTime?: Date | null;
	CreateBy?: string | null;
	UpdateBy?: string | null;
}
export interface ISysGroup {
	ID?: string | null;
	GroupCode?: string | null;
	GroupName?: string | null;
	ParentId?: string | null;
	Manager?: string | null;
	GroupRemark?: string | null;
	CreateTime?: Date | null;
	UpdateTime?: Date | null;
}

export interface ISysOrg {
	ID?: string | null;
	OrgCode?: string | null;
	OrgName?: string | null;
	ParentId?: string | null;
	Manager?: string | null;
	OrgRemark?: string | null;
	CreateTime?: Date | null;
	UpdateTime?: Date | null;
}
export interface ISysHrTransferRequestBill {
	ID?: string | null;
	TransferRequestCode?: string | null;
	TransferRequestName?: string | null;
	TransferRequestType?: string | null;
	TransferRequestStatus?: string | null;
	TransferRequestDate?: Date | null;
}
export interface ISysPerson {
	ID?: string | null;
	PersonCode?: string | null;
	PersonName?: string | null;
	PersonType?: string | null;
	PersonStatus?: string | null;
	PersonDate?: Date | null;
}
export interface ISysPersonContract {
	ID?: string | null;
	ContractCode?: string | null;
	ContractName?: string | null;
	ContractType?: string | null;
	ContractStatus?: string | null;
	ContractDate?: Date | null;
}

/**
 * 属性控制字段
 */
export interface IPropertyControl {
	/** 属性名称 */
	Name: string;
	/** 显示名称 */
	DisplayName: string;
	/** 是否可见 */
	IsVisible: boolean;
	/** 是否可编辑 */
	IsEditable: boolean;
}

/**
 * 属性控制列表类型
 */
export type IPropertyControls = IPropertyControl[];